One of the most common tasks performed by computer users is the transfer of one or more files between two or more computers. This currently may be achieved through specialized hardware, such as a portable USB flash drive, or through software. Software for this purpose can be divided into three main categories: those which are “Peer-to-Peer” (P2P) programs (e.g., programs which use the BitTorrent protocol), those which employ Client-Server architecture (e.g., HTTP and FTP files servers), and “Cloud Programs.” Technically, Cloud Programs fall into the Client Server category, but are distinguished here due to their need for Internet connectivity, whereas the first two categories can function on a LAN alone, i.e., without requiring Internet connectivity.
These programs suffer from at least one, or some combination of the following problems: they require an Internet connection, they require special or specific software to be installed on all computers taking part in the transfer—prior to the transfer, and/or they allow only for unidirectional transfers. Additionally, these programs are typically limited by the unavailability of necessary software on certain operating systems or platforms, or are cumbersome or difficult to install or set up. Another limitation is that some of these programs require at least three nodes in a network to effectuate a file transfer, where at least one node performs server/controller functions such as, e.g., coordinating communication, data transfer, and/or protocol conversion and the like, to allow a file exchange between two other nodes.